﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using blacksoft.Models;
using blacksoft.Constantes;
using System.Security.Cryptography;
using System.Text;

namespace blacksoft.Controllers
{
    public class ClienteController : Controller
    {
        private inf245travelbusEntities db = new inf245travelbusEntities();

        // GET: /Cliente/
        public ActionResult Index()       
        {
            var persona = db.Persona.Include(p => p.Terminal).Include(p => p.UnidadVenta);

            return View(persona.ToList().Where(c => c.TipoPersona == SystemField.ID_PERSONA_PASAJERO_COMUN && "" + c.Estado == "AC" ));
        }

        // GET: /Cliente/Details/5
        public ActionResult Details(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Persona persona = db.Persona.Find(id);
            if (persona == null)
            {
                return HttpNotFound();
            }
            return View(persona);
        }

        // GET: /Cliente/Create
        public ActionResult Create(bool? intranet)
        {
            ViewBag.IDTerminal = new SelectList(db.Terminal, "IDTerminal", "Nombre");
            ViewBag.IDUnidadVenta = new SelectList(db.UnidadVenta, "IDUnidadVenta", "Nombre");
            return View();
        }



        // POST: /Cliente/Create
        // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener 
        // más información vea http://go.microsoft.com/fwlink/?LinkId=317598.
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "IDPersona,Nombre,ApellidoPaterno,ApellidoMaterno,DNI,FechaNacimiento,Direccion,Telefono,Email,Celular,NombreUsuario,PasswordUsuario,PasswordUsuarioRepite")] ClienteModel persona)
        {
            persona.Estado = Constantes.SystemField.ESTATE_REGISTER_ACTIVE;
            persona.CargoPersonal = Constantes.SystemField.CARGO_PERSONA_PARA_CLIENTE;
            if (ModelState.IsValid)
            {
                if (persona.PasswordUsuario == persona.PasswordUsuarioRepite)
                {
                    persona.TipoPersona = SystemField.ID_PERSONA_PASAJERO_COMUN;
                    persona.PuntosAcumulados = 0;
                    var personaEntity = new Persona() { Nombre = persona.Nombre, ApellidoPaterno = persona.ApellidoPaterno, ApellidoMaterno = persona.ApellidoMaterno, DNI = persona.DNI, FechaNacimiento = persona.FechaNacimiento, Direccion = persona.Direccion, Telefono = Convert.ToInt32(persona.Telefono), Email = persona.Email, Celular = Convert.ToInt32(persona.Celular), NombreUsuario = persona.NombreUsuario, PasswordUsuario = persona.PasswordUsuario, PasswordUsuarioRepite = persona.PasswordUsuarioRepite, PuntosAcumulados = persona.PuntosAcumulados, Estado = persona.Estado, CargoPersonal = persona.CargoPersonal, TipoPersona = persona.TipoPersona };
                    db.Persona.Add(personaEntity);
                    db.SaveChanges();
                    db.Usuario.Add(new Usuario() { Nombre = persona.NombreUsuario, Contraseña = SetHash(persona.PasswordUsuario), IDPerfil = SystemField.ID_USUARIO_PERSONA_COMUN, IDPersona = personaEntity.IDPersona, });
                    db.SaveChanges();
                    TempData["create_success"] = "El cliente se registró correctamente";
                    return RedirectToAction("Index");
                    #region COMENTADO POR Q ESTA MAL
                    //if (Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == null) {
                    //    return RedirectToAction("Index");
                    //} else {
                    //    if ((int)Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == SystemField.ID_USUARIO_PERSONA_COMUN)
                    //    {jeRegistroCliente"] = "¡Felicidades! .... Se registro satisfactoriamente;";
                    //        return RedirectToAction("PaginaPrincipalCliente", "INT_Principal");
                    //    }
                    //    else if ((int)Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == SystemField.ID_USUARIO_PERSONA_COMUN_NO_LOGUEADA) {
                    //        Session["MensajeRegistroCliente"] = "¡Felicidades! .... Se registro satisfactoriamente;";
                    //        return RedirectToAction("Index", "INT_Principal");
                    //    }
                    //    else
                    //    {
                    //        return RedirectToAction("Index");
                    //    }
                    //}
                    //if (ViewBag.RegistroNuevoCliente == "0")
                    //return RedirectToAction("Index");
                    //else
                    //{
                    //Session["MensajeRegistroCliente"] = "¡Felicidades! .... Se registro satisfactoriamente;";
                    //return RedirectToAction("Index", "INT_Principal");
                    //}
                    #endregion
                }
                else
                    return View(persona);
            }else
                return View(persona);
            //}
            //ViewBag.IDTerminal = new SelectList(db.Terminal, "IDTerminal", "Nombre", persona.IDTerminal);
            //ViewBag.IDUnidadVenta = new SelectList(db.UnidadVenta, "IDUnidadVenta", "Nombre", persona.IDUnidadVenta);
            //return View(persona);
        }



        public ActionResult Create2()
        {
            ViewBag.IDTerminal = new SelectList(db.Terminal, "IDTerminal", "Nombre");
            ViewBag.IDUnidadVenta = new SelectList(db.UnidadVenta, "IDUnidadVenta", "Nombre");
            return View();
        }

        // POST: /Cliente/Create
        // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener 
        // más información vea http://go.microsoft.com/fwlink/?LinkId=317598.
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create2([Bind(Include = "IDPersona,Nombre,ApellidoPaterno,ApellidoMaterno,DNI,FechaNacimiento,Direccion,Telefono,Email,Celular,NombreUsuario,PasswordUsuario,PasswordUsuarioRepite")] ClienteModel persona)
        {
            persona.Estado = Constantes.SystemField.ESTATE_REGISTER_ACTIVE;
            persona.CargoPersonal = Constantes.SystemField.CARGO_PERSONA_PARA_CLIENTE;
            if (ModelState.IsValid)
            {
                if (persona.PasswordUsuario == persona.PasswordUsuarioRepite)
                {
                    persona.TipoPersona = SystemField.ID_PERSONA_PASAJERO_COMUN;
                    persona.PuntosAcumulados = 0;

                    var personaEntity = new Persona() { Nombre = persona.Nombre, ApellidoPaterno = persona.ApellidoPaterno, ApellidoMaterno = persona.ApellidoMaterno, DNI = persona.DNI, FechaNacimiento = persona.FechaNacimiento, Direccion = persona.Direccion, Telefono = Convert.ToInt32(persona.Telefono), Email = persona.Email, Celular = Convert.ToInt32(persona.Celular), NombreUsuario = persona.NombreUsuario, PasswordUsuario = persona.PasswordUsuario, PasswordUsuarioRepite = persona.PasswordUsuarioRepite, PuntosAcumulados = persona.PuntosAcumulados, Estado = persona.Estado, CargoPersonal = persona.CargoPersonal, TipoPersona = persona.TipoPersona };
                    db.Persona.Add(personaEntity);
                    db.SaveChanges();
                    db.Usuario.Add(new Usuario() { Nombre = persona.NombreUsuario, Contraseña = SetHash(persona.PasswordUsuario), IDPerfil = SystemField.ID_USUARIO_PERSONA_COMUN, IDPersona = personaEntity.IDPersona, });
                    db.SaveChanges();

                    Session["MensajeRegistroCliente"] = "¡Felicidades! .... Se registro satisfactoriamente;";
                    return RedirectToAction("Index", "INT_Principal");
                    #region COMENTADO POR Q ESTA MAL
                    //if (Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == null)
                    //{
                    //    return RedirectToAction("Index");
                    //}
                    //else
                    //{
                    //    if ((int)Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == SystemField.ID_USUARIO_PERSONA_COMUN)
                    //    {
                    //        Session["MensajeRegistroCliente"] = "¡Felicidades! .... Se registro satisfactoriamente;";
                    //        return RedirectToAction("PaginaPrincipalCliente", "INT_Principal");
                    //    }
                    //    else if ((int)Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == SystemField.ID_USUARIO_PERSONA_COMUN_NO_LOGUEADA)
                    //    {
                    //        Session["MensajeRegistroCliente"] = "¡Felicidades! .... Se registro satisfactoriamente;";
                    //        return RedirectToAction("Index", "INT_Principal");
                    //    }
                    //    else
                    //    {
                    //        return RedirectToAction("Index");
                    //    }
                    //}
                    //if (ViewBag.RegistroNuevoCliente == "0")
                    //return RedirectToAction("Index");
                    //else
                    //{
                    //Session["MensajeRegistroCliente"] = "¡Felicidades! .... Se registro satisfactoriamente;";
                    //return RedirectToAction("Index", "INT_Principal");
                    //}
                    #endregion
                }
                else
                    return View(persona);
            } else  
                return View(persona);
             
        }

        // GET: /Cliente/Edit/5
        public ActionResult Edit(int? id)
        {
            if (id == null) {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            var personaEntity = db.Persona.Find(id);
            if (personaEntity == null) {
                return HttpNotFound();
            }

            ClienteModel persona = new ClienteModel(){
                IDPersona = personaEntity.IDPersona,
                Nombre = personaEntity.Nombre, 
                ApellidoPaterno = personaEntity.ApellidoPaterno, 
                ApellidoMaterno = personaEntity.ApellidoMaterno, 
                DNI = personaEntity.DNI, 
                FechaNacimiento = personaEntity.FechaNacimiento, 
                Direccion = personaEntity.Direccion,
                Telefono = (personaEntity.Telefono == null)? 0 : Convert.ToInt32(personaEntity.Telefono.Value), 
                Email = personaEntity.Email,
                Celular = (personaEntity.Celular == null)? 0 : Convert.ToInt32(personaEntity.Celular.Value), 
                NombreUsuario = personaEntity.NombreUsuario, 
                PasswordUsuario = personaEntity.PasswordUsuario, 
                PasswordUsuarioRepite = personaEntity.PasswordUsuarioRepite,
                PuntosAcumulados = (personaEntity.PuntosAcumulados == null)? 0 : personaEntity.PuntosAcumulados.Value, 
                Estado = personaEntity.Estado, 
                CargoPersonal = personaEntity.CargoPersonal,
                TipoPersona = (personaEntity.TipoPersona == null)? 0 : personaEntity.TipoPersona.Value
            };

            var usuarios = db.Usuario.ToList().Where(c => c.IDPersona == id.Value);
            if (usuarios.Any()) {
                var usuario = usuarios.First();
                persona.NombreUsuario = usuario.Nombre;
                persona.PasswordUsuario = usuario.Contraseña;
            }          
            return View(persona);
        }

        // POST: /Cliente/Edit/5
        // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener 
        // más información vea http://go.microsoft.com/fwlink/?LinkId=317598.
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit([Bind(Include = "IDPersona,Nombre,ApellidoPaterno,ApellidoMaterno,DNI,FechaNacimiento,Direccion,Telefono,Email,Celular,NombreUsuario,PasswordUsuario,PasswordUsuarioRepite")] ClienteModel persona)
        {
            if (ModelState.IsValid)
            {
                if (persona.PasswordUsuario == persona.PasswordUsuarioRepite)
                {
                    var personaEntity = db.Persona.Find(persona.IDPersona);
                    personaEntity.IDPersona = persona.IDPersona;
                    personaEntity.Nombre = persona.Nombre;
                    personaEntity.ApellidoPaterno = persona.ApellidoPaterno;
                    personaEntity.ApellidoMaterno = persona.ApellidoMaterno;
                    personaEntity.DNI = persona.DNI;
                    personaEntity.FechaNacimiento = persona.FechaNacimiento;
                    personaEntity.Direccion = persona.Direccion;
                    personaEntity.Telefono = Convert.ToInt32(persona.Telefono);
                    personaEntity.Email = persona.Email;
                    personaEntity.Celular = Convert.ToInt32(persona.Celular);
                    personaEntity.NombreUsuario = persona.NombreUsuario;
                    personaEntity.PasswordUsuario = persona.PasswordUsuario;
                    personaEntity.PasswordUsuarioRepite = persona.PasswordUsuarioRepite;
                    personaEntity.PuntosAcumulados = persona.PuntosAcumulados;
                    personaEntity.Estado = persona.Estado;
                    personaEntity.CargoPersonal = persona.CargoPersonal;
                    personaEntity.TipoPersona = persona.TipoPersona;

                    db.Entry(personaEntity).State = EntityState.Modified;
                    personaEntity.TipoPersona = SystemField.ID_PERSONA_PASAJERO_COMUN;
                    personaEntity.Estado = Constantes.SystemField.ESTATE_REGISTER_ACTIVE;
                    personaEntity.CargoPersonal = Constantes.SystemField.CARGO_PERSONA_PARA_CLIENTE;
                    db.SaveChanges();

                    var usuariosModify = db.Usuario.ToList().Where(c => c.IDPersona == personaEntity.IDPersona);
                    if (usuariosModify.Any())
                    {
                        //var usuarioModify = usuariosModify.First();
                        //usuarioModify.Contraseña = SetHash(persona.PasswordUsuario);
                        //db.SaveChanges();
                    }

                    TempData["edit_success"] = "El cliente se modifico Satisfactoriamente";
                    return RedirectToAction("Index");
                    #region COMENTADO POR Q ESTA MAL
                    //if (Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == null)
                    //{
                    //    return RedirectToAction("Index");
                    //}
                    //else
                    //{
                    //    if ((int)Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == SystemField.ID_USUARIO_PERSONA_COMUN)
                    //    {
                    //        Session["MensajeRegistroCliente"] = "Modifico sus datos satisfactoriamente";
                    //        return RedirectToAction("PaginaPrincipalCliente", "INT_Principal");
                    //    }
                    //    else if ((int)Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == SystemField.ID_USUARIO_PERSONA_COMUN_NO_LOGUEADA)
                    //    {
                    //        Session["MensajeRegistroCliente"] = "Modifico sus datos satisfactoriamente";
                    //        return RedirectToAction("Index", "INT_Principal");
                    //    }
                    //    else
                    //    {
                    //        return RedirectToAction("Index");
                    //    }
                    //}
                    #endregion
                }
                else
                    return View(persona);
            }
            else
                return View(persona);
            #region ooo
            //////if (ModelState.IsValid)
            //////{
            ////    if (persona.PasswordUsuario == persona.PasswordUsuarioRepite) { 
            ////        db.Entry(persona).State = EntityState.Modified;
            ////        persona.TipoPersona = SystemField.ID_PERSONA_PASAJERO_COMUN;
            ////        persona.Estado = Constantes.SystemField.ESTATE_REGISTER_ACTIVE;
            ////        persona.CargoPersonal = Constantes.SystemField.CARGO_PERSONA_PARA_CLIENTE;
            ////        db.SaveChanges();

            ////        var usuariosModify = db.Usuario.ToList().Where(c => c.IDPersona == persona.IDPersona);
            ////        if (usuariosModify.Any()) {
            ////            var usuarioModify = usuariosModify.First();
            ////            usuarioModify.Contraseña = persona.PasswordUsuario;
            ////            db.SaveChanges();
            ////        }

            ////        return RedirectToAction("Index");
            ////        //if (Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == null) {
            ////        //    return RedirectToAction("Index");
            ////        //} else {
            ////        //    if ((int)Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == SystemField.ID_USUARIO_PERSONA_COMUN)
            ////        //    {
            ////        //        Session["MensajeRegistroCliente"] = "Modifico sus datos satisfactoriamente";
            ////        //        return RedirectToAction("PaginaPrincipalCliente", "INT_Principal");
            ////        //    }
            ////        //    else if ((int)Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == SystemField.ID_USUARIO_PERSONA_COMUN_NO_LOGUEADA) {
            ////        //        Session["MensajeRegistroCliente"] = "Modifico sus datos satisfactoriamente";
            ////        //        return RedirectToAction("Index", "INT_Principal");
            ////        //    }
            ////        //    else
            ////        //    {
            ////        //        return RedirectToAction("Index");
            ////        //    }
            ////        //}

            ////    } else {
            ////        ViewBag.IDTerminal = new SelectList(db.Terminal, "IDTerminal", "Nombre", persona.IDTerminal);
            ////        ViewBag.IDUnidadVenta = new SelectList(db.UnidadVenta, "IDUnidadVenta", "Nombre", persona.IDUnidadVenta);
            ////        return View(persona);
            ////    }
            //////}
            //////ViewBag.IDTerminal = new SelectList(db.Terminal, "IDTerminal", "Nombre", persona.IDTerminal);
            //////ViewBag.IDUnidadVenta = new SelectList(db.UnidadVenta, "IDUnidadVenta", "Nombre", persona.IDUnidadVenta);
            //////return View(persona);
            #endregion
        }

        // GET: /Cliente/Edit/5
        public ActionResult Edit2(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            var personaEntity = db.Persona.Find(id);
            if (personaEntity == null)
            {
                return HttpNotFound();
            }

            ClienteModel persona = new ClienteModel()
            {
                IDPersona = personaEntity.IDPersona,
                Nombre = personaEntity.Nombre,
                ApellidoPaterno = personaEntity.ApellidoPaterno,
                ApellidoMaterno = personaEntity.ApellidoMaterno,
                DNI = personaEntity.DNI,
                FechaNacimiento = personaEntity.FechaNacimiento,
                Direccion = personaEntity.Direccion,
                Telefono = (personaEntity.Telefono == null) ? 0 : Convert.ToInt32(personaEntity.Telefono.Value),
                Email = personaEntity.Email,
                Celular = (personaEntity.Celular == null) ? 0 : Convert.ToInt32(personaEntity.Celular.Value),
                NombreUsuario = personaEntity.NombreUsuario,
                PasswordUsuario = personaEntity.PasswordUsuario,
                PasswordUsuarioRepite = personaEntity.PasswordUsuarioRepite,
                PuntosAcumulados = (personaEntity.PuntosAcumulados == null) ? 0 : personaEntity.PuntosAcumulados.Value,
                Estado = personaEntity.Estado,
                CargoPersonal = personaEntity.CargoPersonal,
                TipoPersona = (personaEntity.TipoPersona == null) ? 0 : personaEntity.TipoPersona.Value
            };
            var usuarios = db.Usuario.ToList().Where(c => c.IDPersona == id.Value);
            if (usuarios.Any()) {
                var usuario = usuarios.First();
                persona.NombreUsuario = usuario.Nombre;
                persona.PasswordUsuario = usuario.Contraseña;
            }
            return View(persona);
        }

        // POST: /Cliente/Edit/5
        // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener 
        // más información vea http://go.microsoft.com/fwlink/?LinkId=317598.
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit2([Bind(Include = "IDPersona,Nombre,ApellidoPaterno,ApellidoMaterno,DNI,FechaNacimiento,Direccion,Telefono,Email,Celular,NombreUsuario,PasswordUsuario,PasswordUsuarioRepite")] ClienteModel persona)
        {
            if (ModelState.IsValid)
            {
                if (persona.PasswordUsuario == persona.PasswordUsuarioRepite)
                {
                    var personaEntity = db.Persona.Find(persona.IDPersona);
                    personaEntity.IDPersona = persona.IDPersona;
                    personaEntity.Nombre = persona.Nombre;
                    personaEntity.ApellidoPaterno = persona.ApellidoPaterno;
                    personaEntity.ApellidoMaterno = persona.ApellidoMaterno;
                    personaEntity.DNI = persona.DNI;
                    personaEntity.FechaNacimiento = persona.FechaNacimiento;
                    personaEntity.Direccion = persona.Direccion;
                    personaEntity.Telefono = Convert.ToInt32(persona.Telefono);
                    personaEntity.Email = persona.Email;
                    personaEntity.Celular = Convert.ToInt32(persona.Celular);
                    personaEntity.NombreUsuario = persona.NombreUsuario;
                    personaEntity.PasswordUsuario = persona.PasswordUsuario;
                    personaEntity.PasswordUsuarioRepite = persona.PasswordUsuarioRepite;
                    personaEntity.PuntosAcumulados = persona.PuntosAcumulados;
                    personaEntity.Estado = persona.Estado;
                    personaEntity.CargoPersonal = persona.CargoPersonal;
                    personaEntity.TipoPersona = persona.TipoPersona;

                    db.Entry(personaEntity).State = EntityState.Modified;
                    personaEntity.TipoPersona = SystemField.ID_PERSONA_PASAJERO_COMUN;
                    personaEntity.Estado = Constantes.SystemField.ESTATE_REGISTER_ACTIVE;
                    personaEntity.CargoPersonal = Constantes.SystemField.CARGO_PERSONA_PARA_CLIENTE;
                    db.SaveChanges();

                    var usuariosModify = db.Usuario.ToList().Where(c => c.IDPersona == personaEntity.IDPersona);
                    if (usuariosModify.Any())
                    {
                        //var usuarioModify = usuariosModify.First();
                        //usuarioModify.Contraseña = SetHash(persona.PasswordUsuario);
                        //db.SaveChanges();
                    }
                    Session["MensajeRegistroCliente"] = "Modifico sus datos satisfactoriamente!!!";
                    return RedirectToAction("Index", "INT_Principal");
                    #region COMENTADO POR Q ESTA MAL
                    //if (Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == null)
                    //{
                    //    return RedirectToAction("Index");
                    //}
                    //else
                    //{
                    //    if ((int)Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == SystemField.ID_USUARIO_PERSONA_COMUN)
                    //    {
                    //        Session["MensajeRegistroCliente"] = "Modifico sus datos satisfactoriamente";
                    //        return RedirectToAction("PaginaPrincipalCliente", "INT_Principal");
                    //    }
                    //    else if ((int)Session[SystemField.SESION_ID_USUARIO_TIPO_PERSONA] == SystemField.ID_USUARIO_PERSONA_COMUN_NO_LOGUEADA)
                    //    {
                    //        Session["MensajeRegistroCliente"] = "Modifico sus datos satisfactoriamente";
                    //        return RedirectToAction("Index", "INT_Principal");
                    //    }
                    //    else
                    //    {
                    //        return RedirectToAction("Index");
                    //    }
                    //}
                    #endregion
                }else
                    return View(persona);
            }else
                return View(persona);
        }

        // GET: /Cliente/Delete/5
        public ActionResult Delete(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            
            Persona persona = db.Persona.Find(id);
            if (persona == null)
            {
                TempData["delete_failure"] = "No se encontro al cliente";
                return HttpNotFound();
            }
            return View(persona);
        }

        // POST: /Cliente/Delete/5
        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(int id)
        {
            Persona persona = db.Persona.Find(id);
            //db.Persona.First().Estado = "IN";
            persona.Estado = "IN";
            db.SaveChanges();
            TempData["delete_success"] = "El cliente se eliminó correctamente";
            return RedirectToAction("Index");
        }



        public JsonResult getDatosPasajeroXDNI(string NroDni)
        {
            var datosPasajero = db.Persona.Where(c=>c.DNI.Equals(NroDni));
            if (datosPasajero.Any()) {
                
                return Json(new { any = 1, datos = datosPasajero.First().IDPersona });
            }
            else
                return Json(new { any = 0 });
        }


        public ActionResult Login()
        {
            return View();
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                db.Dispose();
            }
            base.Dispose(disposing);
        }


        private static string SetHash(string a)
        {
            using (MD5 md5Hash = MD5.Create())
            {
                return GetMd5Hash(md5Hash, a);
            }
        }


        public static string GetMd5Hash(MD5 md5Hash, string input)
        {

            // Convert the input string to a byte array and compute the hash.
            byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));

            // Create a new Stringbuilder to collect the bytes
            // and create a string.
            StringBuilder sBuilder = new StringBuilder();

            // Loop through each byte of the hashed data 
            // and format each one as a hexadecimal string.
            for (int i = 0; i < data.Length; i++)
            {
                sBuilder.Append(data[i].ToString("x2"));
            }

            // Return the hexadecimal string.
            return sBuilder.ToString();
        }


    }
}
